.\"
.\" Copyright (c) 2008-2009 Apple Inc. All rights reserved.
.\"
.\" @APPLE_LICENSE_HEADER_START@
.\" 
.\" This file contains Original Code and/or Modifications of Original Code
.\" as defined in and that are subject to the Apple Public Source License
.\" Version 2.0 (the 'License'). You may not use this file except in
.\" compliance with the License. Please obtain a copy of the License at
.\" http://www.opensource.apple.com/apsl/ and read it before using this
.\" file.
.\" 
.\" The Original Code and all software distributed under the License are
.\" distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
.\" EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
.\" INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
.\" FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
.\" Please see the License for the specific language governing rights and
.\" limitations under the License.
.\" 
.\" @APPLE_LICENSE_HEADER_END@
.\"
.Dd March 21, 2009
.Dt SETAUID 2
.Os
.Sh NAME
.Nm setauid
.Nd "set audit indentifier"
.Sh SYNOPSIS
.In bsm/audit.h
.Ft int
.Fn setauid "au_id_t *auid"
.Sh DESCRIPTION
The
.Fn setauid
system call
sets the active audit identifier for the current process from the
.Vt au_id_t
pointed to by
.Fa auid .
The value of AU_DEFAUDITID (-1) should not be used for 
.Fa auid .
.Pp
This system call requires an appropriate privilege to complete.
.Pp
Once the audit identifier is set to some other value than
AU_DEAUDITID (-1) then it is immutable.
This system call may be used to set the audit identifier after 
initially setting up the audit session with the 
.Xr setaudit 2 ,
or 
.Xr setaudit_addr 2 
system call.
.Sh RETURN VALUES
.Rv -std
.Sh ERRORS
The
.Fn setauid
function will fail if:
.Bl -tag -width Er
.It Bq Er EFAULT
A failure occurred while data transferred to
the kernel failed.
.It Bq Er EINVAL
An invalid value for 
.Fa auid
was used.
.Fa auid
can be any value of type 
.Vt au_id_t
except AU_DEFAUDITID.
.It Bq Er EPERM
The process does not have sufficient permission to complete
the operation.
.El
.Sh SEE ALSO
.Xr audit 2 ,
.Xr auditon 2 ,
.Xr getaudit 2 ,
.Xr getaudit_addr 2 ,
.Xr getauid 2 ,
.Xr setaudit 2 ,
.Xr setaudit_addr 2 ,
.Xr libbsm 3
.Sh HISTORY
The OpenBSM implementation was created by McAfee Research, the security
division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004.
It was subsequently adopted by the TrustedBSD Project as the foundation for
the OpenBSM distribution.
.Sh AUTHORS
.An -nosplit
This software was created by McAfee Research, the security research division
of McAfee, Inc., under contract to Apple Computer Inc.
Additional authors include
.An Wayne Salamon ,
.An Robert Watson ,
and SPARTA Inc.
.Pp
The Basic Security Module (BSM) interface to audit records and audit event
stream format were defined by Sun Microsystems.
.Pp
This manual page was written by
.An Robert Watson Aq rwatson@FreeBSD.org
and
.An Stacey Son Aq sson@FreeBSD.org .
